package com.zmn.uac.common.entity.oauth.login;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 类描述：用户其它信息(包含：语言、用户关注时间、公众号运营者对粉丝的备注、用户所在的分组ID、用户被打上的标签ID列表、
 * 用户被打上的标签名称列表(逗号分隔)、三方用户关注的渠道来源二维码扫码场景（开发者自定义）、
 * 二维码扫码场景描述（开发者自定义）、来源参数、关注状态、会话密钥)
 *
 * @author xujie
 * @since 2021/06/08 17:56
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserOtherInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 语言
     */
    private String language;

    /**
     * 用户关注时间
     */
    private String subscribeTime;

    /**
     * 公众号运营者对粉丝的备注
     */
    private String remark;

    /**
     * 用户所在的分组ID
     */
    private String groupId;

    /**
     * 用户被打上的标签ID列表
     */
    private List<Integer> tagIds;

    /**
     * 用户被打上的标签名称列表(逗号分隔)
     */
    private String tagNames;

    /**
     * 三方用户关注的渠道来源
     */
    private String subscribeScene;

    /**
     * 二维码扫码场景（开发者自定义）
     */
    private String qrScene;

    /**
     * 二维码扫码场景描述（开发者自定义）
     */
    private String qrSceneStr;

    /**
     * 来源参数 (eg.微信临时二维码参数)
     */
    private String sourceParam;

    /**
     * 关注状态,1未关注,2已关注
     */
    private Integer subscribe;

    /**
     * 会话密钥
     */
    private String sessionKey;

    public static void builderNull() {

        UserOtherInfo userOtherInfo = UserOtherInfo.builder()
                .language(null)
                .subscribeTime(null)
                .remark(null)
                .groupId(null)
                .tagIds(null)
                .tagNames(null)
                .subscribeScene(null)
                .qrScene(null)
                .qrSceneStr(null)
                .sourceParam(null)
                .subscribe(null)
                .sessionKey(null)
                .build();
    }
}
